A computing arrangement (e.g., computer system) includes hardware and software components. Conventionally, a computing arrangement includes an instruction processor and a memory arrangement for storing instructions, and for optionally storing data. The instruction processor fetches instructions from the memory and executes the instructions. A set of instructions comprises the software component, or computer program. One fundamental piece of software executed on the instruction processor is called an operating system.
The operating system is the software most closely associated with the computer hardware. The operating system typically manages the real and simulated hardware components comprising the computing arrangement. The operating system contains software interfaces that facilitate the communication of other software components with the physical and simulated (i.e., logical) hardware components of the computing arrangement. An operating system hides the communication with the hardware components by using a file structure. Other software components operate “on top of” the operating system, making use of the features and interfaces the operating system provides. The other software components assign, free, read and write to the various hardware components indirectly via files managed by the operating system. The other software components actually manipulate the files, and the operating system handles the I/O associated with the manipulated files, managing the interfaces between the files and actual (or simulated) hardware component(s). Therefore, the operating system needs to know certain information regarding the configuration of the physical and simulated (i.e., logical) hardware components such as their existence, location (i.e., connectivity) and allocation so that the operating system can effectively manage the computing arrangement.
Physical hardware components include, for example, input/output processors (IOP), channels (e.g., Small Computer Systems Interface (SCSI) HBA cards), control units, connections, physical memory, and various devices such as tapes, disk drives, etc. An IOP is a piece of software associated with a hardware bridge used to fetch input/output (I/O) instructions and data from a memory arrangement, and communicated with a channel, control unit, or device. Simulated hardware components include, for example, emulated instruction processors (software), consoles (software), logical drives and emulated memory allocations.
A modern computer system may be arranged to include more than one operating system. Where a computing arrangement includes more than one operating system, the underlying, or primary, operating system is referred to as the host operating system. An emulator is a piece of software that executes on the host operating system to mimic another computing arrangement configuration. Another operating system executes on the emulator (i.e., the emulated machine, or emulated computing system), and is referred to herein as the “emulator operating system” to differentiate this additional operating system from the host operating system. The emulator operating system is not itself emulated, but simply connotes an operating system that executes on the emulated machine. Both the host and emulator operating systems need to be aware of the existence of the configuration of the physical and simulated hardware components comprising the computing arrangements they control. The host operating system knows of the existence of all hardware, but typically certain hardware components are reserved for use by the emulator operating system. Certain devices reserved for the emulated machine may not even be formatted for the host operating system.
One conventional method for making the hardware components and connectivity known to an emulator operating system was to manually insert the computing system configuration using a piece of software called System Configuration Management System (SCMS). For example, certain information regarding a respective hardware component was entered as data via a human interface device or otherwise downloaded from an external source. After the hardware component and its connectivity information are inserted, SCMS creates a Partition Data Bank (PDB) file. Subsequently, the PDB file is fed into the emulator operating system's boot process. Thereby, the PDB file provides the emulator operating system a “blue print” of the I/O system configuration.
A method and apparatus that improves upon the aforementioned configuration management techniques for emulator operating systems, as well as addresses other related efficiencies, are therefore desirable.